package com.jdk.parallerutils.futuretask;

import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;

/**
 * @Description :异步执行计算结果，在计算完成之前get方法会一直等待。一旦计算完成，就不能再重新开始或取消计算。可使用 FutureTask
 *              包装 Callable 或 Runnable 对象
 * @FileName: FutureTaskTest.java
 * @Author :WeiHui.Zhang
 * @Data : 2015年11月23日 下午3:43:34
 * @Version:V1.00
 */
public class FutureTaskTest {

	public static void main(String[] args) throws InterruptedException, ExecutionException {
		FutureTask<String> ft = new FutureTask<String>(new Callable<String>() {

			@Override
			public String call() throws Exception {
				return "aaaaa";
			}
		});
		new Thread(ft).start();
		while (!ft.isDone()) {
			System.out.println("增在计算结果...");
		}
		System.out.println(ft.get());
	}
}
